背景
Active Directory(AD),即Windows的域帐户系统,用于很多公司的IT系统,管理公司计算机和人员帐号。
但是许多第三方系统并不对接AD域控(如腾讯企业邮箱),同时AD默认是不可逆转的加密策略(即单向的Hash算法)。
明文存储用户帐号密码成为了不得以的手段。
允许Windows AD使用Reversible Encryption存储密码
参考这里。
我使用的办法是第一条,也就是在Windows组策略中默认打开允许可逆加密存储密码。
Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Account Policies -> Password Policy -> Store passwords using reversible encryption
改为Enable。
注意,所有已创建的帐号必须重新改密码才能生效。
自助密码修改工具
在企业部署不完善的时候,很多用户的计算机没有加入AD域,那么就需要一个修改密码的系统。
配置例子
config.inc.local.php:
注意配置下面几项(踩了很多坑,一定不要多改,大家不要踩坑就好):
1 | <?php |
Dockerfile:
关闭TLS验证,针对自签名证书防止证书验证失败导致无法连接域控服务器(同时注意部署的节点上所有的路由千万要受控)
1 | FROM php:7.2.8-apache-stretch |
docker-compose.yaml:
映射配置文件,将容器的80端口映射到本机的8080端口。
1 | version: '2.3' |
nginx不再赘述了。
启动容器:
docker-compose up -d --build
导出密码
这里使用了一个脚本
不熟python的话可以看一下https://blog.csdn.net/u011771047/article/details/74214591。
主要就是先安装python3(或者集成了很多库的anaconda3),然后用pip安装依赖。
安装依赖包argparse与impacket后,下载这个脚本
1 | python secretsdump.py -dc-ip your_domain_ip administrator@you_domain_name.com -outputfile output |
运行中会要求输入administrator的密码
成功后 output.ntds.cleartext 中有帐号的明文密码,可以用来去各网站调用API同步帐号了。